#pragma once

#include <string>
#include <cstdint>

namespace El {
namespace Storage {

// 存储设备类型
enum class DeviceType { SD_CARD, USB_DRIVE, EMMC_NAND, UNKNOWN };

// 设备状态
enum class DeviceStatus { UNKNOWN, MOUNTED, UNMOUNTED, ERROR };

// 文件系统类型
enum class FileSystemType { FAT32, EXFAT, NTFS, EXT4, AUTO };

// 容量信息
struct StorageCapacity {
    uint64_t totalBytes;      // 总容量
    uint64_t usedBytes;       // 已使用容量
    uint64_t availableBytes;  // 可用容量
    uint32_t usagePercentage; // 使用百分比，值1~100
};

// Add this enum class
enum class StorageEventType {
    DEVICE_ADDED,     // 设备添加
    DEVICE_REMOVED,   // 设备移除
    DEVICE_MOUNTED,   // 设备挂载
    DEVICE_UNMOUNTED, // 设备卸载
    DEVICE_CHANGED,   // 设备状态变化
    CAPACITY_WARNING, // 容量警告
    ERROR_OCCURRED,   // 设备错误
    DEVICE_UNKNOWN    // 设备未知
};

} // namespace Storage
} // namespace El